﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;

namespace Real_Estate.Code.OBJ
{
    class Comercial : Imovel
    {
        //Campos adicionais
        private decimal Largura;
        public decimal largura
        {
            get { return Largura; }
            set { Largura = value; }
        }

        private decimal Comprimento;
        public decimal comprimento
        {
            get { return Comprimento; }
            set { Comprimento = value; }
        }

        private decimal Altura;
        public decimal altura
        {
            get { return Altura; }
            set { Altura = value; }
        }

        //Construtor
        public Comercial(int TipoID1, string Cidade1, string Bairro1, string Negocio1, string CEP1, string Endereco1, string Numero1)
        {
            this.tipoid = TipoID1;
            this.cidade = Cidade1;
            this.bairro = Bairro1;
            this.negocio = Negocio1;
            this.cep = CEP1;
            this.endereco = Endereco1;
            this.numero = Numero1;
        }

        //Valores adicionais
        public override  void AdicionaValor(decimal Valor1)
        {
            this.valor = Valor1;
        }
        public override void AdicionaArea(decimal Area1)
        {
            this.area = Area1;
        }
        public override void AdicionaComp(string Comp1)
        {
            this.comp = Comp1;
        }
        public override void AdicionaDescricao(string Descricao1)
        {
            this.descricao = Descricao1;
        }

        public void AdicionaLargura(decimal Largura1)
        {
            this.largura = Largura1;
        }

        public void AdicionaComprimento(decimal Comprimento1)
        {
            this.comprimento = Comprimento1;
        }

        public decimal AdicionaDimensoes(decimal Largura1, decimal Comprimento1)
        {
            this.largura = Largura1;
            this.comprimento = Comprimento1;
            this.area = Comprimento1 * Largura1;
            return area;
        }

        public void AdicionaAltura(decimal Altura1)
        {
            this.altura = Altura1;
        }

        public override float RetornaLat()
        {
            return lat;
        }

        public override float RetornaLng()
        {
            return lng;
        }

        //Calculo das coordenadas
        public override void CalculaPosicao()
        {
            Googlegeocode Geocode = new Googlegeocode(HttpUtility.UrlEncode(endereco + "+" + numero + "," + bairro + "," + cidade + ",SP,Brasil"));
            Geocode.CalculaCoordenadas();
            lat=Geocode.RetornaLat();
            lng=Geocode.RetornaLng();
        }
    }
}